#include #include using std::cin; using std::cout; using std::endl; const int SLICES = 25; const int ROWS = 4; const int COLUMNS = 4; void getMatrixFromUser(int matrix[][COLUMNS]); void displayMatrix(int matrix[][COLUMNS]); void addMatrices(int matrix1[][COLUMNS], int matrix2[][COLUMNS], int resultMatrix[][COLUMNS]); void subtractMatrices(int matrix1[][COLUMNS], int matrix2[][COLUMNS], int resultMatrix[][COLUMNS]); void scalarMultiply(int matrix[][COLUMNS], int scalar, int resultMatrix[][COLUMNS]); void transposeMatrix(int matrix[][COLUMNS], int resultMatrix[][COLUMNS]); void main() { int matrices[SLICES][ROWS][COLUMNS]; int matricesUsed = 0; int initialMatrices; cout << "How many initial matrices?"; cin >> initialMatrices; for(int i = 0; i < initialMatrices; i++) { getMatrixFromUser(matrices[matricesUsed]); matricesUsed++; } char operation; do { //todo: prompt for input cout << "Operation?"; cin >> operation; switch(operation) { case '+': int addIndex1; int addIndex2; //data validaion cout << " First matrix for +?"; cin >> addIndex1; cout << "Second matrix for +?"; cin >> addIndex2; addMatrices(matrices[addIndex1-1], matrices[addIndex2-1], matrices[matricesUsed]); displayMatrix(matrices[matricesUsed]); matricesUsed++; break; case '-': matricesUsed++; break; case '*': matricesUsed++; break; case 'D': case 'd': int indexToDisplay; //add data validation cout << "Matrix to Display? "; cin >> indexToDisplay; displayMatrix(matrices[indexToDisplay-1]); break; case 'T': case 't': matricesUsed++; break; case 'X': //optional/extra credit matricesUsed++; break; } } while(operation != 'Q' && operation != 'q' && matricesUsed < 25); } void displayMatrix(int matrix[][COLUMNS]) { for(int i= 0; i < ROWS; i++) { cout << "Row " << i+1 << ": "; for(int j = 0; j < COLUMNS;j++) { cout << matrix[i][j] << " "; } cout << endl; } } void addMatrices(int matrix1[][COLUMNS], int matrix2[][COLUMNS], int resultMatrix[][COLUMNS]) { for(int i= 0; i < ROWS; i++) { for(int j = 0; j < COLUMNS;j++) { resultMatrix[i][j] = matrix1[i][j]+matrix2[i][j]; } } } void getMatrixFromUser(int matrix[][COLUMNS]) { for(int i= 0; i < ROWS; i++) { cout << "Row " << i+1 << "?"; for(int j = 0; j < COLUMNS;j++) { cin >> matrix[i][j]; } } }